package com.iam.encode;

import org.springframework.util.DigestUtils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

/**
 * create by yongli on 2021-07-25 14:00
 */

public class Des {

    public static void main(String[] args) {
        Base64.Decoder decoder = Base64.getDecoder();
        Base64.Encoder encoder = Base64.getEncoder();
        // Base64是一个经典的对称加密,也可以说是一个编码和解码，应为只要知道了其是Base64，就能解码出报文
        String str = new String(encoder.encode("I love china".getBytes()));
        System.out.println(str);


        // md5是不对称的，但是其也没有密钥，其映射是固定的，加密效果也不是很好
        // md5返回为32位16进制小写字符串。
        String en = DigestUtils.md5DigestAsHex("1234".getBytes());
        System.out.println(en);
        test();
    }

    public static void test() {
        try {
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            // 数组也是一个对象， --> string
            System.out.println(md5.digest("stringtodigest".getBytes()));
            System.out.println(md5.digest("stringtodigest".getBytes()));
            System.out.println(md5.digest("stringtodigest".getBytes()));
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }


}
